# -*- coding: utf8 -*-
#Autor: Iván Viguera
#Programa: dataHora.py
#Descripción:
#  ▲
# ▲ ▲


import datetime
import time

def changeHour(hourAux):
    sortir = False
    while not sortir:
        print 'Hora:', hourAux
        print 'a. Canvia hora'
        print 'b. Canvia minuts'
        print 'c. Canvia segons'
        print 'x. Tornar enrere'
        op = raw_input('Opció: ')
        try:
            if op =='a':
               h = int(raw_input('Nou valor per hores: '))
               hourAux = hourAux.replace(hour=h)
            elif op == 'b':
                m= int(raw_input('Nou valor per minuts: '))
                hourAux = hourAux.replace(minute=m)
            elif op == 'c':
                s = int(raw_input('Nou valor per segons: '))
                hourAux = hourAux.replace(seconds=s)
            elif op == 'x':
                sortir = True
        except:
            print 'Valor introduït incorrecte.'
    return hourAux

def changeDate(dateAux):
    sortir = False
    while not sortir:
        print 'Data:', dateAux
        print 'a. Canvia any'
        print 'b. Canvia mes'
        print 'c. Canvia día'
        print 'x. Tornar enrere'
        op = raw_input('Opció: ')
        try:
            if op =='a':
               y = int(raw_input('Nou valor per any: '))
               dateAux = dateAux.replace(year=y)
            elif op == 'b':
                m= int(raw_input('Nou valor per mes: '))
                dateAux = dateAux.replace(month=m)
            elif op == 'c':
                d = int(raw_input('Nou valor per día: '))
                dateAux = dateAux.replace(day=d)
            elif op == 'x':
                sortir = True
        except:
            print 'Valor introduït incorrecte.'
    return dateAux

def addHour(dataHora,hora):
    return dataHora.replace(hour   = hora.hour,
                            minute = hora.minute,
                            second = hora.second)

def addDate(dataHora,data):
    return dataHora.replace(year = data.year,
                            month = data.month,
                            day = data.day)

aux =  time.strftime('%H:%M:%S').split(':')
hora = datetime.time(int(aux[0]),
                     int(aux[1]),
                     int(aux[2]))

data = datetime.date.today()
dataHora = datetime.datetime(data.year,
                             data.month,
                             data.day,
                             hora.hour,
                             hora.minute,
                             hora.second)

sortir = False
while not sortir:
    print 'La data és:', data
    print 'L\'hora és:', hora
    print 'La datahora és:', dataHora
    print 'a. Canvia la data'
    print 'b. Canvia el temps'
    print 'c. Assigna la data a datahora'
    print 'd. Assigna l\'hora a datahora'
    print 'x. Surt'

    op = raw_input('Opció: ')
    
    if op == 'a':
        data = changeDate(data)
    elif op == 'b':
        hora = changeHour(hora)
    elif op == 'c':
        dataHora = addDate(dataHora,data)
    elif op == 'd':
        dataHora = addHour(dataHora,hour)
    elif op == 'x':
        sortir = True
